/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controller;

import common.Articulo;
import common.ArticuloStock;
import common.ItemTabla;
import controller.utils.ControllerTable;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import javax.swing.table.DefaultTableModel;
import model.ModelListaArticulo;
import model.ModelPALC;
import tiendagui.internal.JDialogListaArticulo;
import tiendagui.internal.JInternalFrameGenerarPALC;

/**
 *
 * @author Jhonny
 */
public class ControllerPALC   extends Controller implements ControllerTable{
    
    private JDialogListaArticulo listaArticulos;
    public ControllerPALC(JInternalFrameGenerarPALC dialog, ModelPALC model) {
        super(dialog,model);
    }

    @Override
    public void initComponentView() throws FileNotFoundException, IOException {
        List<Articulo> articulos = null;
        articulos = ((ModelPALC)model).getArticulosPALC();
        List<ItemTabla> items = new LinkedList<ItemTabla>();
        items.addAll(articulos);
        initDatosTabla(((JInternalFrameGenerarPALC)dialog).getTable(), items);
    }

    @Override
    public ItemTabla getArticulo() {
        ItemTabla item = null;
        getListaArticulos().setVisible(true);

        return item;
    }

    public JDialogListaArticulo getListaArticulos() {
        if(listaArticulos==null){            
            listaArticulos = new JDialogListaArticulo(null, true,new ModelListaArticulo());
        }
        return listaArticulos;
    }

    @Override
    public Articulo getArticulo(Integer referencia) {
        return model.getArticulo(referencia);
    }

    public void generarPedido() {

        List<ArticuloStock> list = new LinkedList<ArticuloStock>();
        int rowCount = ((DefaultTableModel)((JInternalFrameGenerarPALC)dialog).getTable().getModel()).getRowCount();
        for (int i = 0; i < rowCount; i++) {
            ArticuloStock item = getObject(i);
            if(item!=null){
                list.add(item);
            }
        }
        ((ModelPALC)model).generarPedido(list);
    }

    private ArticuloStock getObject(int row) {
        ArticuloStock articulo = new ArticuloStock();
        DefaultTableModel modelTable = ((DefaultTableModel)((JInternalFrameGenerarPALC)dialog).getTable().getModel());
        articulo.setReferencia((Integer) modelTable.getValueAt(row, 0));
        articulo.setStock((Integer) modelTable.getValueAt(row, 4));
        return articulo;
    }


}
